#ifndef READERTOMODEL_H
#define READERTOMODEL_H

#include <QObject>

class QAbstractItemModel;
class QXmlStreamReader;
class QModelIndex;

/** Читает данные из QXmlStreamReader в модель
 *
 * Позаботится об удалении переданного объекта QXmlStreamReader.
 * @author Вася Почкаенко
 */
class ReaderToModel : public QObject{
Q_OBJECT
private:
	/** На этот символ будут заменены пробелы в именах атрибутов при записи xml и наоборот.*/
	QString space;

	/** Читает из xml.*/
	QXmlStreamReader *r;

	/** Модель в которую/из которой читаем/пишем.*/
	QAbstractItemModel *m;

	bool isEndAnketa();

	bool isEndVopros();
public:
	explicit ReaderToModel(QAbstractItemModel * model, QXmlStreamReader * XmlReader, QObject * parent = 0);

	~ReaderToModel();

	/** Объект QXmlStreamReader с помощью которого читаю.*/
	QXmlStreamReader * streamReader();
signals:

public slots:
	/** Записать данные в xml.*/
	void read();

	/** Установить объект QXmlStreamReader с помощью которого читаю.*/
	void setStreamReader(QXmlStreamReader * streamReader);
};

#endif // READERTOMODEL_H
